import http from '@/utils/http'

// 登录
export async function fetchLogin(params) {
  return await http.post('/user/login', params)
}

// 刷新 token
export function fetchUpdateToken(data) {
  const method = http.post('/updateToken', data)
  method.meta = {
    authRole: 'refreshToken'
  }
  return method
}

// 根据角色 id 获取所具有权限的路由
export function fetchUserRoutes(rId) {
  return http.get(`/router/${rId}`)
}

// 获取用户头像
export async function fetchUserAvatar(uId) {
  return URL.createObjectURL(await http.get(`/avatar/${uId}`))
}

// 获取用户角色信息
export function fetchUserRoleInfo(rId) {
  return http.get(`/role/${rId}`)
}

// 修改用户登录信息
export function updateUserLoginInfo(uId, params) {
  return http.put(`/user/${uId}`, {
    ...params
  })
}

// 修改用户头像
export function updateUserAvatar(uId, avatar) {
  return http.put(`/avatar/${uId}`, {
    ...avatar
  })
}

// 新增用户
export function addNewUser(params) {
  return http.post('/user/register', params)
}

// 获取用户列表
export function fetchAllUser(page = 1, size = 10) {
  return http.get(`/user?page=${page}&limit=${size}`)
}

// 修改用户状态
export function updateUserState(uId, state) {
  return http.put(`/user/${uId}/state/${state}`)
}

// 删除单个用户
export function deleteUser(uId) {
  return http.delete(`/user/${uId}`)
}

// 修改用户角色
export function updateUserRole(uId, rId) {
  return http.put(`/user/${uId}/role/${rId}`)
}

// 模糊查询用户列表
export function searchUser(params) {
  return http.post('/user/search', {
    ...params
  })
}

// 验证码验证
export function fetchVerifyCode(params) {
  return http.post('/code', {
    ...params
  })
}
